home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / MPW_TOOL / TOOLS / TOOLS_WI / ICON_8 / ICONT_FO / PARSE.C < prev    next >
Text File  |  1990-03-02  |  32KB  |  1,057 lines

  1. # define CSETLIT 257
  2. # define EOFX 258
  3. # define IDENT 259
  4. # define INTLIT 260
  5. # define REALLIT 261
  6. # define STRINGLIT 262
  7. # define BREAK 263
  8. # define BY 264
  9. # define CASE 265
  10. # define CREATE 266
  11. # define DEFAULT 267
  12. # define DO 268
  13. # define ELSE 269
  14. # define END 270
  15. # define EVERY 271
  16. # define FAIL 272
  17. # define GLOBAL 273
  18. # define IF 274
  19. # define INITIAL 275
  20. # define LINK 276
  21. # define LOCAL 277
  22. # define NEXT 278
  23. # define NOT 279
  24. # define OF 280
  25. # define PROCEDURE 281
  26. # define RECORD 282
  27. # define REPEAT 283
  28. # define RETURN 284
  29. # define STATIC 285
  30. # define SUSPEND 286
  31. # define THEN 287
  32. # define TO 288
  33. # define UNTIL 289
  34. # define WHILE 290
  35. # define ASSIGN 291
  36. # define AT 292
  37. # define AUGACT 293
  38. # define AUGAND 294
  39. # define AUGEQ 295
  40. # define AUGEQV 296
  41. # define AUGGE 297
  42. # define AUGGT 298
  43. # define AUGLE 299
  44. # define AUGLT 300
  45. # define AUGNE 301
  46. # define AUGNEQV 302
  47. # define AUGSEQ 303
  48. # define AUGSGE 304
  49. # define AUGSGT 305
  50. # define AUGSLE 306
  51. # define AUGSLT 307
  52. # define AUGSNE 308
  53. # define BACKSLASH 309
  54. # define BANG 310
  55. # define BAR 311
  56. # define CARET 312
  57. # define CARETASGN 313
  58. # define COLON 314
  59. # define COMMA 315
  60. # define CONCAT 316
  61. # define CONCATASGN 317
  62. # define CONJUNC 318
  63. # define DIFF 319
  64. # define DIFFASGN 320
  65. # define DOT 321
  66. # define EQUIV 322
  67. # define INTER 323
  68. # define INTERASGN 324
  69. # define LBRACE 325
  70. # define LBRACK 326
  71. # define LCONCAT 327
  72. # define LCONCATASGN 328
  73. # define LEXEQ 329
  74. # define LEXGE 330
  75. # define LEXGT 331
  76. # define LEXLE 332
  77. # define LEXLT 333
  78. # define LEXNE 334
  79. # define LPAREN 335
  80. # define MCOLON 336
  81. # define MINUS 337
  82. # define MINUSASGN 338
  83. # define MOD 339
  84. # define MODASGN 340
  85. # define NOTEQUIV 341
  86. # define NUMEQ 342
  87. # define NUMGE 343
  88. # define NUMGT 344
  89. # define NUMLE 345
  90. # define NUMLT 346
  91. # define NUMNE 347
  92. # define PCOLON 348
  93. # define PLUS 349
  94. # define PLUSASGN 350
  95. # define QMARK 351
  96. # define RBRACE 352
  97. # define RBRACK 353
  98. # define REVASSIGN 354
  99. # define REVSWAP 355
  100. # define RPAREN 356
  101. # define SCANASGN 357
  102. # define SEMICOL 358
  103. # define SLASH 359
  104. # define SLASHASGN 360
  105. # define STAR 361
  106. # define STARASGN 362
  107. # define SWAP 363
  108. # define TILDE 364
  109. # define UNION 365
  110. # define UNIONASGN 366
  111.  
  112. # line 138 "expanded.g"
  113. #include "::h:config.h"
  114. #include "tproto.h"
  115. #include "trans.h"
  116. #include "tsym.h"
  117. #include "tree.h"
  118. #include "::h:keyword.h"
  119. #define YYSTYPE nodeptr
  120. #define YYMAXDEPTH 500
  121.  
  122. extern int fncargs[];
  123. int idflag;
  124. int id_cnt;
  125. int key_num;
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132. #define yyclearin yychar = -1
  133. #define yyerrok yyerrflag = 0
  134. extern int yychar;
  135. extern short yyerrflag;
  136. #ifndef YYMAXDEPTH
  137. #define YYMAXDEPTH 150
  138. #endif
  139. #ifndef YYSTYPE
  140. #define YYSTYPE int
  141. #endif
  142. YYSTYPE yylval, yyval;
  143. # define YYERRCODE 256
  144.  
  145. # line 431 "expanded.g"
  146.  
  147. short yyexca[] ={
  148. -1, 1,
  149.     0, -1,
  150.     -2, 0,
  151. -1, 18,
  152.     358, 35,
  153.     -2, 33,
  154. -1, 103,
  155.     358, 35,
  156.     -2, 33,
  157. -1, 109,
  158.     358, 35,
  159.     -2, 33,
  160.     };
  161. # define YYNPROD 196
  162. # define YYLAST 784
  163. short yyact[]={
  164.  
  165.   32,  88, 163,  78,  85,  86,  87,  80, 167,  93,
  166.   77, 343, 110, 348, 220,  96,  89, 303,  92, 349,
  167.  165,  18,  79,  45, 169, 109, 335,  97,  90, 314,
  168.   91, 301, 162,  95,  94, 301,  44, 301, 302, 110,
  169.  345, 319, 111, 325, 168, 177, 166, 342, 164, 175,
  170.  174, 340, 317,  67,  50,  46,  55, 316, 222, 176,
  171.   47, 102,  84,  51, 331,  49,  63,  56, 110,  82,
  172.   83,  48, 326,  61, 346, 304, 300, 310,  62,  81,
  173.  324,  58, 350, 160, 321,  66,  59, 220, 110, 309,
  174.  306,  60, 351,  52, 161,  65, 110, 308, 336,  35,
  175.  110, 305, 220,  54, 307,  53, 323, 100,  57,  64,
  176.   32,  88, 206,  78,  85,  86,  87,  80, 322,  93,
  177.   77, 110, 315,  17, 318,  96,  89, 110,  92, 108,
  178.   99,  22,  79,  45,  23, 172, 210,  97,  90, 110,
  179.   91, 311, 110,  95,  94, 299,  44, 110, 105, 209,
  180.  106, 110, 171, 173, 101, 170,  26,   3, 107,  38,
  181.   31,  21, 320,  67,  50,  46,  55,  98, 341,  25,
  182.   47, 204,  84,  51,  28,  49,  63,  56,   2,  82,
  183.   83,  48,  15,  61,  12, 296,  76,  13,  62,  81,
  184.   75,  58,  14,  10,  74,  66,  59,  73,  72,  40,
  185.   71,  60,  70,  52,  69,  65, 295,  68,  39,  43,
  186.   41,  36,  34,  54, 104,  53,   4, 312,  57,  64,
  187.   32,  88,  24,  78,  85,  86,  87,  80, 103,  93,
  188.   77,  12,  27,  11,  13,  96,  89, 223,  92,  14,
  189.   10,  16,  79,  45, 263, 264,  19,  97,  90,  20,
  190.   91,   9,   8,  95,  94, 208,  44,   7,   6,   5,
  191.    1,   0, 221,   0,   0,   0,   0,   0,   0,   0,
  192.  224, 229, 226,  67,  50,  46,  55,   0, 225,   0,
  193.   47,   0,  84,  51, 228,  49,  63,  56,   0,  82,
  194.   83,  48,   0,  61,   0,   0,   0,   0,  62,  81,
  195.    0,  58,   0,   0,   0,  66,  59,   0,   0,   0,
  196.    0,  60,   0,  52,   0,  65,   0,   0,   0,   0,
  197.  279, 280,   0,  54,   0,  53,   0,   0,  57,  64,
  198.   88,   0,  78,  85,  86,  87,  80,   0,  93,  77,
  199.    0,   0,   0,   0,  96,  89,   0,  92, 298,   0,
  200.    0,  79,  45,   0,   0,   0,  97,  90,   0,  91,
  201.    0,   0,  95,  94,   0,  44, 285, 286, 287, 288,
  202.  289, 281, 282, 283, 284,   0,   0,   0,   0,   0,
  203.    0,   0,  67,  50,  46,  55,  30,   0,   0,  47,
  204.  313,  84,  51,   0,  49,  63,  56, 352,  82,  83,
  205.   48,   0,  61,   0,   0,   0,   0,  62,  81,   0,
  206.   58,   0,   0,   0,  66,  59, 328,   0, 337,   0,
  207.   60,   0,  52,   0,  65,   0,   0,   0,   0,   0,
  208.    0,   0,  54,   0,  53,   0, 144,  57,  64, 113,
  209.    0, 143, 142, 127, 128, 129, 130, 131, 132, 133,
  210.  134, 135, 136, 137, 138, 139, 140,  29,   0,   0,
  211.    0, 126,   0,   0, 202, 116,   0,   0, 118,   0,
  212.    0,   0, 123,   0,  33,   0, 117,   0, 213, 214,
  213.  215, 216, 217, 218, 219,   0, 121,   0, 125,  37,
  214.    0,   0, 227,   0,   0,   0,   0,   0, 120,   0,
  215.    0, 145, 115, 114,   0, 141,   0,   0, 124,   0,
  216.  122, 112, 158,   0, 119,   0,   0,  42,   0, 146,
  217.  147, 148, 149, 150, 151,   0,   0,   0,   0,   0,
  218.    0, 159, 152, 153, 154, 155, 156, 157, 203, 205,
  219.  207, 205,   0,   0,   0,   0,   0,   0, 211, 212,
  220.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  221.    0, 294, 178, 179, 180, 181, 182, 183, 184, 185,
  222.  186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
  223.  196, 197, 198, 199, 200, 201, 230, 231, 232, 233,
  224.  234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  225.  244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
  226.  254, 255, 256, 257, 258, 259, 260, 261, 262,   0,
  227.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  228.    0,   0, 293, 297, 205,   0, 265, 266, 267, 268,
  229.  269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
  230.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  231.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  232.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  233.    0,   0,   0,   0,   0,   0,   0,   0,   0, 290,
  234.  291, 292, 329, 330,   0, 332, 333, 334,   0,   0,
  235.    0,   0,   0,   0,   0,   0,   0, 338,   0,   0,
  236.    0,   0,   0,   0,   0,   0,   0,   0, 344,   0,
  237.    0,   0,   0,   0,   0,   0,   0, 347,   0,   0,
  238.    0,   0,   0,   0,   0,   0, 344, 353, 354,   0,
  239.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  240.    0,   0,   0,   0,   0,   0,   0,   0,   0, 327,
  241.    0, 207,   0,   0,   0,   0,   0,   0,   0,   0,
  242.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  243.    0,   0,   0, 339 };
  244. short yypact[]={
  245.  
  246.  -99,-1000, -42,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  247. -1000,-235,-1000,-128,-1000, -89,-103,-1000, -36,-129,
  248. -208,-1000,-1000,-1000,-105,-1000,-274,-127,-141,-333,
  249. -250,-309,-1000,-1000, 148,-1000, 190,-233,-317,-315,
  250. -1000,-157,-1000,-276,  73,  73,  73,  73,  73,  73,
  251.   73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  252.   73,  73,  73,  73,  73,  73,  73,  73,-1000,-1000,
  253. -1000,-1000,-1000,-1000,-1000,-1000,-1000, -36,-1000,-1000,
  254.  -36, -36, -36, -36,-123,-1000,-1000,-1000,-1000,-1000,
  255.  -36, -36, -36, -36, -36, -36, -36, -36,-213,-1000,
  256. -128,-277,-129, -36,-129, -36,-1000,-1000,-1000, -36,
  257.   73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  258.   73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  259.   73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  260.   73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  261.   73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  262.   73,  73,  73,  73,  73,  73,  73,  73,  73,  73,
  263.   73,  73,  73,  73, -36,-146, -36,-114,-1000,-1000,
  264. -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  265. -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  266. -1000,-1000,-250,-1000,-280,-1000,-314,-341,-278,-1000,
  267. -1000,-1000,-1000,-167,-197,-176,-171,-179,-191,-250,
  268. -118,-1000,-129,-327,-213,-148,-301,-306,-1000,-309,
  269. -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  270. -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  271. -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
  272. -1000,-1000,-1000,-140,-1000,-233,-233,-233,-233,-233,
  273. -233,-233,-233,-233,-233,-233,-233,-233,-233,-317,
  274. -317,-315,-315,-315,-315,-1000,-1000,-1000,-1000,-1000,
  275. -1000,-1000,-1000,-312,-230,-1000,-272,-1000,-284,-1000,
  276. -1000, -36,-1000, -36,-1000, -36, -36,-261, -36, -36,
  277.  -36,-1000,-330,-228,-1000,-1000,-1000,-1000,  73,-1000,
  278.  -36,-1000,-1000,-1000,-1000, -36,-1000,-1000,-1000,-250,
  279. -218,-256,-250,-250,-250,-1000,-313,-1000,-279,-1000,
  280.  -36,-339,-1000,-232,-222,-1000,-1000,-250,-1000,-256,
  281.  -36, -36,-1000,-250,-250 };
  282. short yypgo[]={
  283.  
  284.    0, 260, 178, 259, 258, 257, 252, 251, 249, 161,
  285.  246, 167, 241, 237, 233, 232, 228, 174, 222, 217,
  286.  214, 386, 457, 160, 474, 212,  99, 211, 489, 159,
  287.  208, 199, 210, 517, 209, 207, 204, 202, 200, 198,
  288.  197, 194, 190, 186, 171, 112, 185, 168,  47, 162 };
  289. short yyr1[]={
  290.  
  291.    0,   1,   2,   2,   3,   3,   3,   3,   7,   8,
  292.    8,   9,   9,  10,   6,  12,   4,  13,  13,   5,
  293.   18,  14,  19,  19,  19,  11,  11,  15,  15,  20,
  294.   20,  16,  16,  17,  17,  22,  22,  21,  21,  23,
  295.   23,  24,  24,  24,  24,  24,  24,  24,  24,  24,
  296.   24,  24,  24,  24,  24,  24,  24,  24,  24,  24,
  297.   24,  24,  24,  24,  24,  24,  24,  24,  24,  24,
  298.   24,  24,  24,  24,  25,  25,  25,  26,  26,  27,
  299.   27,  27,  27,  27,  27,  27,  27,  27,  27,  27,
  300.   27,  27,  27,  27,  28,  28,  28,  29,  29,  29,
  301.   29,  29,  30,  30,  30,  30,  30,  31,  31,  32,
  302.   32,  32,  32,  33,  33,  33,  33,  33,  33,  33,
  303.   33,  33,  33,  33,  33,  33,  33,  33,  33,  33,
  304.   33,  33,  33,  33,  33,  33,  33,  33,  34,  34,
  305.   34,  34,  34,  34,  34,  34,  34,  34,  34,  34,
  306.   34,  34,  34,  34,  34,  34,  34,  34,  34,  34,
  307.   34,  40,  40,  41,  41,  42,  42,  43,  37,  37,
  308.   37,  37,  38,  38,  39,  47,  47,  48,  48,  44,
  309.   44,  46,  46,  35,  35,  35,  35,  36,  49,  49,
  310.   49,  45,  45,   1,   5,  21 };
  311. short yyr2[]={
  312.  
  313.    0,   2,   0,   2,   1,   1,   1,   1,   2,   1,
  314.    3,   1,   1,   0,   3,   0,   6,   0,   1,   6,
  315.    0,   6,   0,   1,   3,   1,   3,   0,   4,   1,
  316.    1,   0,   3,   0,   3,   0,   1,   1,   3,   1,
  317.    3,   1,   3,   3,   3,   3,   3,   3,   3,   3,
  318.    3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
  319.    3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
  320.    3,   3,   3,   3,   1,   3,   5,   1,   3,   1,
  321.    3,   3,   3,   3,   3,   3,   3,   3,   3,   3,
  322.    3,   3,   3,   3,   1,   3,   3,   1,   3,   3,
  323.    3,   3,   1,   3,   3,   3,   3,   1,   3,   1,
  324.    3,   3,   3,   1,   2,   2,   2,   2,   2,   2,
  325.    2,   2,   2,   2,   2,   2,   2,   2,   2,   2,
  326.    2,   2,   2,   2,   2,   2,   2,   2,   1,   1,
  327.    1,   1,   1,   1,   1,   1,   1,   2,   1,   1,
  328.    2,   3,   3,   3,   4,   3,   4,   4,   3,   2,
  329.    2,   2,   4,   2,   4,   2,   4,   2,   1,   2,
  330.    2,   4,   4,   6,   6,   1,   3,   3,   3,   1,
  331.    3,   1,   3,   1,   1,   1,   1,   6,   1,   1,
  332.    1,   1,   3,   3,   4,   1 };
  333. short yychk[]={
  334.  
  335. -1000,  -1,  -2, 256, 258,  -3,  -4,  -5,  -6,  -7,
  336.  282, -14, 273, 276, 281,  -2, -12, 358, 256, -10,
  337.   -8,  -9, 259, 262, -18, 258, 259, -15, -17, -22,
  338.  -21, -23, 256, -24, -25, -26, -27, -28, -29, -30,
  339.  -31, -32, -33, -34, 292, 279, 311, 316, 327, 321,
  340.  310, 319, 349, 361, 359, 312, 323, 364, 337, 342,
  341.  347, 329, 334, 322, 365, 351, 341, 309, -35, -36,
  342.  -37, -38, -39, -40, -41, -42, -43, 266, 259, 278,
  343.  263, 335, 325, 326, 318, 260, 261, 262, 257, 272,
  344.  284, 286, 274, 265, 290, 289, 271, 283, -11, 259,
  345.  315, 259, 335, -16, -20, 275, 277, 285, 270, 358,
  346.  318, 351, 363, 291, 355, 354, 317, 328, 320, 366,
  347.  350, 338, 362, 324, 360, 340, 313, 295, 296, 297,
  348.  298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
  349.  308, 357, 294, 293, 288, 311, 329, 330, 331, 332,
  350.  333, 334, 342, 343, 344, 345, 346, 347, 322, 341,
  351.  316, 327, 349, 319, 365, 337, 361, 323, 359, 339,
  352.  312, 309, 292, 310, 326, 325, 335, 321, -33, -33,
  353.  -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
  354.  -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
  355.  -33, -33, -21, -22, -44, -22, -45, -22, -44, 272,
  356.  259, -22, -22, -21, -21, -21, -21, -21, -21, -21,
  357.  315,  -9, 335, -13, -11, -17, -11, -21, -17, -23,
  358.  -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
  359.  -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
  360.  -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
  361.  -24, -24, -24, -26, -26, -28, -28, -28, -28, -28,
  362.  -28, -28, -28, -28, -28, -28, -28, -28, -28, -29,
  363.  -29, -30, -30, -30, -30, -31, -31, -31, -31, -31,
  364.  -33, -33, -33, -22, -21, 352, -46, -22, -44, 259,
  365.  356, 315, 352, 358, 353, 268, 287, 280, 268, 268,
  366.  268, 259, -19, -11, 356, 270, 358, 358, 264, 353,
  367.  -49, 314, 348, 336, 352, 315, 356, -22, -45, -21,
  368.  -21, 325, -21, -21, -21, 356, 326, -26, -21, -22,
  369.  269, -47, -48, 267, -21, 353, 353, -21, 352, 358,
  370.  314, 314, -48, -21, -21 };
  371. short yydef[]={
  372.  
  373.    2,  -2,   0,   2,   1,   3,   4,   5,   6,   7,
  374.   15,   0,  13,   0,  20,   0,   0,  27,  -2,   0,
  375.    8,   9,  11,  12,   0, 193,   0,  31,   0,   0,
  376.   36,  37, 195,  39,  41,  74,  77,  79,  94,  97,
  377.  102, 107, 109, 113,   0,   0,   0,   0,   0,   0,
  378.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  379.    0,   0,   0,   0,   0,   0,   0,   0, 138, 139,
  380.  140, 141, 142, 143, 144, 145, 146,   0, 148, 149,
  381.   35,  35,  35,  35,   0, 183, 184, 185, 186, 168,
  382.   35,  35,   0,   0,   0,   0,   0,   0,  14,  25,
  383.    0,   0,  17,  -2,   0,   0,  29,  30, 194,  -2,
  384.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  385.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  386.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  387.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  388.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  389.    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
  390.    0,   0,   0,   0,  35,  35,  35,   0, 114, 115,
  391.  116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
  392.  126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
  393.  136, 137, 147, 150,   0, 179,   0, 191,   0, 159,
  394.  160, 169, 170,  36,   0,   0, 161, 163, 165, 167,
  395.    0,  10,  22,   0,  18,   0,   0,   0,  34,  38,
  396.   40,  42,  43,  44,  45,  46,  47,  48,  49,  50,
  397.   51,  52,  53,  54,  55,  56,  57,  58,  59,  60,
  398.   61,  62,  63,  64,  65,  66,  67,  68,  69,  70,
  399.   71,  72,  73,  75,  78,  80,  81,  82,  83,  84,
  400.   85,  86,  87,  88,  89,  90,  91,  92,  93,  95,
  401.   96,  98,  99, 100, 101, 103, 104, 105, 106, 108,
  402.  110, 111, 112,   0,  36, 155,   0, 181,   0, 158,
  403.  151,  35, 152,  35, 153,   0,   0,   0,   0,   0,
  404.    0,  26,   0,  23,  16,  19,  28,  32,   0, 154,
  405.    0, 188, 189, 190, 156,  35, 157, 180, 192, 171,
  406.  172,   0, 162, 164, 166,  21,   0,  76,   0, 182,
  407.    0,   0, 175,   0,   0,  24, 187, 173, 174,   0,
  408.    0,   0, 176, 177, 178 };
  409. #ifndef lint
  410. static char yaccpar_sccsid[] = "@(#)yaccpar    4.1    (Berkeley)    2/11/83";
  411. #endif
  412.  
  413. # define YYFLAG -1000
  414. # define YYERROR goto yyerrlab
  415. # define YYACCEPT return(0)
  416. # define YYABORT return(1)
  417.  
  418. /*    parser for yacc output    */
  419.  
  420. #ifdef YYDEBUG
  421. int yydebug = 0; /* 1 for debugging */
  422. #endif
  423. YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
  424. int yychar = -1; /* current input token number */
  425. int yynerrs = 0;  /* number of errors */
  426. short yyerrflag = 0;  /* error recovery flag */
  427.  
  428. yyparse() {
  429.  
  430.     short yys[YYMAXDEPTH];
  431.     short yyj, yym;
  432.     register YYSTYPE *yypvt;
  433.     register short yystate, *yyps, yyn;
  434.     register YYSTYPE *yypv;
  435.     register short *yyxi;
  436.  
  437.     yystate = 0;
  438.     yychar = -1;
  439.     yynerrs = 0;
  440.     yyerrflag = 0;
  441.     yyps= &yys[-1];
  442.     yypv= &yyv[-1];
  443.  
  444.  yystack:    /* put a state and value onto the stack */
  445.  
  446. #ifdef YYDEBUG
  447.     if( yydebug  ) printf( "state %d, char 0%o\n", yystate, yychar );
  448. #endif
  449.         if( ++yyps> &yys[YYMAXDEPTH] ) { tsyserr( "parse stack overflow" ); return(1); }
  450.         *yyps = yystate;
  451.         ++yypv;
  452.         *yypv = yyval;
  453.  
  454.  yynewstate:
  455.  
  456.     yyn = yypact[yystate];
  457.  
  458.     if( yyn<= YYFLAG ) goto yydefault; /* simple state */
  459.  
  460.     if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
  461.     if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;
  462.  
  463.     if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
  464.         yychar = -1;
  465.         yyval = yylval;
  466.         yystate = yyn;
  467.         if( yyerrflag > 0 ) --yyerrflag;
  468.         goto yystack;
  469.         }
  470.  
  471.  yydefault:
  472.     /* default state action */
  473.  
  474.     if( (yyn=yydef[yystate]) == -2 ) {
  475.         if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
  476.         /* look through exception table */
  477.  
  478.         for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */
  479.  
  480.         while( *(yyxi+=2) >= 0 ){
  481.             if( *yyxi == yychar ) break;
  482.             }
  483.         if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */
  484.         }
  485.  
  486.     if( yyn == 0 ){ /* error */
  487.         /* error ... attempt to resume parsing */
  488.  
  489.         switch( yyerrflag ){
  490.  
  491.         case 0:   /* brand new error */
  492.  
  493.             yyerror( yychar, yylval, yystate );
  494.         yyerrlab:
  495.             ++yynerrs;
  496.  
  497.         case 1:
  498.         case 2: /* incompletely recovered error ... try again */
  499.  
  500.             yyerrflag = 3;
  501.  
  502.             /* find a state where "error" is a legal shift action */
  503.  
  504.             while ( yyps >= yys ) {
  505.                yyn = yypact[*yyps] + YYERRCODE;
  506.                if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
  507.                   yystate = yyact[yyn];  /* simulate a shift of "error" */
  508.                   goto yystack;
  509.                   }
  510.                yyn = yypact[*yyps];
  511.  
  512.                /* the current yyps has no shift onn "error", pop stack */
  513.  
  514. #ifdef YYDEBUG
  515.                if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
  516. #endif
  517.                --yyps;
  518.                --yypv;
  519.                }
  520.  
  521.             /* there is no state on the stack with an error shift ... abort */
  522.  
  523.     yyabort:
  524.             return(1);
  525.  
  526.  
  527.         case 3:  /* no shift yet; clobber input char */
  528.  
  529. #ifdef YYDEBUG
  530.             if( yydebug ) printf( "error recovery discards char %d\n", yychar );
  531. #endif
  532.  
  533.             if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
  534.             yychar = -1;
  535.             goto yynewstate;   /* try again in the same state */
  536.  
  537.             }
  538.  
  539.         }
  540.  
  541.     /* reduction by production yyn */
  542.  
  543. #ifdef YYDEBUG
  544.         if( yydebug ) printf("reduce %d\n",yyn);
  545. #endif
  546.         yyps -= yyr2[yyn];
  547.         yypvt = yypv;
  548.         yypv -= yyr2[yyn];
  549.         yyval = yypv[1];
  550.         yym=yyn;
  551.             /* consult goto table to find next state */
  552.         yyn = yyr1[yyn];
  553.         yyj = yypgo[yyn] + *yyps + 1;
  554.         if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
  555.         switch(yym){
  556.             
  557. case 1:
  558. # line 161 "expanded.g"
  559. {gout(globfile);} break;
  560. case 4:
  561. # line 166 "expanded.g"
  562. {if (!nocode)
  563.            rout(globfile, Str0(yypvt[-0]));
  564.         nocode = 0;
  565.         loc_init();} break;
  566. case 5:
  567. # line 170 "expanded.g"
  568. {if (!nocode)
  569.            codegen(yypvt[-0]);
  570.         nocode = 0;
  571.         treeinit();
  572.         loc_init();} break;
  573. case 6:
  574. # line 175 "expanded.g"
  575. {;} break;
  576. case 7:
  577. # line 176 "expanded.g"
  578. {;} break;
  579. case 8:
  580. # line 178 "expanded.g"
  581. {;} break;
  582. case 10:
  583. # line 181 "expanded.g"
  584. {;} break;
  585. case 11:
  586. # line 183 "expanded.g"
  587. {addlfile(Str0(yypvt[-0]));} break;
  588. case 12:
  589. # line 184 "expanded.g"
  590. {addlfile(Str0(yypvt[-0]));} break;
  591. case 13:
  592. # line 186 "expanded.g"
  593. {idflag = F_Global;} break;
  594. case 14:
  595. # line 186 "expanded.g"
  596. {;} break;
  597. case 15:
  598. # line 188 "expanded.g"
  599. {idflag = F_Argument;} break;
  600. case 16:
  601. # line 188 "expanded.g"
  602. {
  603.          install(Str0(yypvt[-3]),F_Record|F_Global,id_cnt); 
  604.             yyval = yypvt[-3];
  605.         } break;
  606. case 17:
  607. # line 193 "expanded.g"
  608. {id_cnt = 0;} break;
  609. case 18:
  610. # line 194 "expanded.g"
  611. {;} break;
  612. case 19:
  613. # line 196 "expanded.g"
  614. {
  615.          yyval = tree6(N_Proc,yypvt[-5],yypvt[-5],yypvt[-2],yypvt[-1],yypvt[-0]);
  616.         } break;
  617. case 20:
  618. # line 200 "expanded.g"
  619. {idflag = F_Argument;} break;
  620. case 21:
  621. # line 200 "expanded.g"
  622. {
  623.         yyval = yypvt[-3];
  624.         install(Str0(yypvt[-3]),F_Proc|F_Global,id_cnt);
  625.         } break;
  626. case 22:
  627. # line 205 "expanded.g"
  628. {id_cnt = 0;} break;
  629. case 23:
  630. # line 206 "expanded.g"
  631. {;} break;
  632. case 24:
  633. # line 207 "expanded.g"
  634. {id_cnt = -id_cnt;} break;
  635. case 25:
  636. # line 210 "expanded.g"
  637. {
  638.         install(Str0(yypvt[-0]),idflag,0);
  639.         id_cnt = 1;
  640.         } break;
  641. case 26:
  642. # line 214 "expanded.g"
  643. {
  644.         install(Str0(yypvt[-0]),idflag,0);
  645.         ++id_cnt;
  646.         } break;
  647. case 27:
  648. # line 219 "expanded.g"
  649. {;} break;
  650. case 28:
  651. # line 220 "expanded.g"
  652. {;} break;
  653. case 29:
  654. # line 222 "expanded.g"
  655. {idflag = F_Dynamic;} break;
  656. case 30:
  657. # line 223 "expanded.g"
  658. {idflag = F_Static;} break;
  659. case 31:
  660. # line 225 "expanded.g"
  661. {yyval = tree1(N_Empty) ;} break;
  662. case 32:
  663. # line 226 "expanded.g"
  664. {yyval = yypvt[-1];} break;
  665. case 33:
  666. # line 228 "expanded.g"
  667. {yyval = tree1(N_Empty) ;} break;
  668. case 34:
  669. # line 229 "expanded.g"
  670. {yyval = tree4(N_Slist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  671. case 35:
  672. # line 231 "expanded.g"
  673. {yyval = tree1(N_Empty) ;} break;
  674. case 38:
  675. # line 235 "expanded.g"
  676. {yyval = tree5(N_Conj,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  677. case 40:
  678. # line 238 "expanded.g"
  679. {yyval = tree5(N_Scan,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  680. case 42:
  681. # line 241 "expanded.g"
  682. case 43:
  683. # line 242 "expanded.g"
  684. case 44:
  685. # line 243 "expanded.g"
  686. case 45:
  687. # line 244 "expanded.g"
  688. {yyval = tree5(N_Binop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  689. case 46:
  690. # line 245 "expanded.g"
  691. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  692. case 47:
  693. # line 246 "expanded.g"
  694. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  695. case 48:
  696. # line 247 "expanded.g"
  697. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  698. case 49:
  699. # line 248 "expanded.g"
  700. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  701. case 50:
  702. # line 249 "expanded.g"
  703. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  704. case 51:
  705. # line 250 "expanded.g"
  706. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  707. case 52:
  708. # line 251 "expanded.g"
  709. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  710. case 53:
  711. # line 252 "expanded.g"
  712. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  713. case 54:
  714. # line 253 "expanded.g"
  715. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  716. case 55:
  717. # line 254 "expanded.g"
  718. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  719. case 56:
  720. # line 255 "expanded.g"
  721. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  722. case 57:
  723. # line 256 "expanded.g"
  724. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  725. case 58:
  726. # line 257 "expanded.g"
  727. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  728. case 59:
  729. # line 258 "expanded.g"
  730. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  731. case 60:
  732. # line 259 "expanded.g"
  733. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  734. case 61:
  735. # line 260 "expanded.g"
  736. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  737. case 62:
  738. # line 261 "expanded.g"
  739. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  740. case 63:
  741. # line 262 "expanded.g"
  742. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  743. case 64:
  744. # line 263 "expanded.g"
  745. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  746. case 65:
  747. # line 264 "expanded.g"
  748. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  749. case 66:
  750. # line 265 "expanded.g"
  751. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  752. case 67:
  753. # line 266 "expanded.g"
  754. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  755. case 68:
  756. # line 267 "expanded.g"
  757. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  758. case 69:
  759. # line 268 "expanded.g"
  760. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  761. case 70:
  762. # line 269 "expanded.g"
  763. {yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  764. case 71:
  765. # line 270 "expanded.g"
  766. {yyval = tree5(N_Scan,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  767. case 72:
  768. # line 271 "expanded.g"
  769. {yyval = tree5(N_Conj,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  770. case 73:
  771. # line 272 "expanded.g"
  772. {yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],yypvt[-2]) ;} break;
  773. case 75:
  774. # line 275 "expanded.g"
  775. {yyval = tree4(N_To,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  776. case 76:
  777. # line 276 "expanded.g"
  778. {yyval = tree5(N_ToBy,yypvt[-3],yypvt[-4],yypvt[-2],yypvt[-0]) ;} break;
  779. case 78:
  780. # line 279 "expanded.g"
  781. {yyval = tree4(N_Alt,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  782. case 80:
  783. # line 282 "expanded.g"
  784. case 81:
  785. # line 283 "expanded.g"
  786. case 82:
  787. # line 284 "expanded.g"
  788. case 83:
  789. # line 285 "expanded.g"
  790. case 84:
  791. # line 286 "expanded.g"
  792. case 85:
  793. # line 287 "expanded.g"
  794. case 86:
  795. # line 288 "expanded.g"
  796. case 87:
  797. # line 289 "expanded.g"
  798. case 88:
  799. # line 290 "expanded.g"
  800. case 89:
  801. # line 291 "expanded.g"
  802. case 90:
  803. # line 292 "expanded.g"
  804. case 91:
  805. # line 293 "expanded.g"
  806. case 92:
  807. # line 294 "expanded.g"
  808. case 93:
  809. # line 295 "expanded.g"
  810. case 95:
  811. # line 298 "expanded.g"
  812. case 96:
  813. # line 299 "expanded.g"
  814. case 98:
  815. # line 302 "expanded.g"
  816. case 99:
  817. # line 303 "expanded.g"
  818. case 100:
  819. # line 304 "expanded.g"
  820. case 101:
  821. # line 305 "expanded.g"
  822. case 103:
  823. # line 308 "expanded.g"
  824. case 104:
  825. # line 309 "expanded.g"
  826. case 105:
  827. # line 310 "expanded.g"
  828. case 106:
  829. # line 311 "expanded.g"
  830. case 108:
  831. # line 314 "expanded.g"
  832. {yyval = tree5(N_Binop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  833. case 110:
  834. # line 317 "expanded.g"
  835. {yyval = tree4(N_Limit,yypvt[-2],yypvt[-2],yypvt[-0]) ;} break;
  836. case 111:
  837. # line 318 "expanded.g"
  838. {yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],yypvt[-2]) ;} break;
  839. case 112:
  840. # line 319 "expanded.g"
  841. {yyval = tree4(N_Apply,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  842. case 114:
  843. # line 322 "expanded.g"
  844. {yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  845. case 115:
  846. # line 323 "expanded.g"
  847. {yyval = tree3(N_Not,yypvt[-0],yypvt[-0]) ;} break;
  848. case 116:
  849. # line 324 "expanded.g"
  850. {yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
  851. case 117:
  852. # line 325 "expanded.g"
  853. {yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
  854. case 118:
  855. # line 326 "expanded.g"
  856. {yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
  857. case 119:
  858. # line 327 "expanded.g"
  859. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  860. case 120:
  861. # line 328 "expanded.g"
  862. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  863. case 121:
  864. # line 329 "expanded.g"
  865. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  866. case 122:
  867. # line 330 "expanded.g"
  868. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  869. case 123:
  870. # line 331 "expanded.g"
  871. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  872. case 124:
  873. # line 332 "expanded.g"
  874. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  875. case 125:
  876. # line 333 "expanded.g"
  877. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  878. case 126:
  879. # line 334 "expanded.g"
  880. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  881. case 127:
  882. # line 335 "expanded.g"
  883. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  884. case 128:
  885. # line 336 "expanded.g"
  886. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  887. case 129:
  888. # line 337 "expanded.g"
  889. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  890. case 130:
  891. # line 338 "expanded.g"
  892. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  893. case 131:
  894. # line 339 "expanded.g"
  895. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  896. case 132:
  897. # line 340 "expanded.g"
  898. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  899. case 133:
  900. # line 341 "expanded.g"
  901. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  902. case 134:
  903. # line 342 "expanded.g"
  904. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  905. case 135:
  906. # line 343 "expanded.g"
  907. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  908. case 136:
  909. # line 344 "expanded.g"
  910. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  911. case 137:
  912. # line 345 "expanded.g"
  913. {yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
  914. case 147:
  915. # line 355 "expanded.g"
  916. {yyval = tree3(N_Create,yypvt[-1],yypvt[-0]) ;} break;
  917. case 148:
  918. # line 356 "expanded.g"
  919. {Val0(yypvt[-0]) = putloc(Str0(yypvt[-0]),0);} break;
  920. case 149:
  921. # line 357 "expanded.g"
  922. {yyval = tree2(N_Next,yypvt[-0]) ;} break;
  923. case 150:
  924. # line 358 "expanded.g"
  925. {yyval = tree3(N_Break,yypvt[-1],yypvt[-0]) ;} break;
  926. case 151:
  927. # line 359 "expanded.g"
  928. {if ((yypvt[-1])->n_type == N_Elist) 
  929.            yyval = tree4(N_Invok,yypvt[-2],tree1(N_Empty) ,yypvt[-1]); 
  930.         else 
  931.            yyval = yypvt[-1];} break;
  932. case 152:
  933. # line 363 "expanded.g"
  934. {yyval = yypvt[-1];} break;
  935. case 153:
  936. # line 364 "expanded.g"
  937. {yyval = tree3(N_List,yypvt[-2],yypvt[-1]) ;} break;
  938. case 154:
  939. # line 365 "expanded.g"
  940. {yyval = tree5(N_Binop,yypvt[-2],yypvt[-2],yypvt[-3],yypvt[-1]);} break;
  941. case 155:
  942. # line 366 "expanded.g"
  943. {yyval = tree4(N_Invok,yypvt[-1],yypvt[-2],
  944.               tree3(N_List,yypvt[-1],tree1(N_Empty) )) ;} break;
  945. case 156:
  946. # line 368 "expanded.g"
  947. {yyval = tree4(N_Invok,yypvt[-2],yypvt[-3],tree3(N_List,yypvt[-2],yypvt[-1])) ;} break;
  948. case 157:
  949. # line 370 "expanded.g"
  950. {yyval = tree4(N_Invok,yypvt[-2],yypvt[-3],yypvt[-1]) ;} break;
  951. case 158:
  952. # line 371 "expanded.g"
  953. {yyval = tree4(N_Field,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  954. case 159:
  955. # line 372 "expanded.g"
  956. {yyval = int_leaf(N_Key,yypvt[-1],K_FAIL) ;} break;
  957. case 160:
  958. # line 373 "expanded.g"
  959. {if ((key_num = klookup(Str0(yypvt[-0]))) == 0)
  960.            tfatal("invalid keyword",Str0(yypvt[-0]));
  961.         yyval = int_leaf(N_Key,yypvt[-1],key_num);} break;
  962. case 161:
  963. # line 377 "expanded.g"
  964. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) );} break;
  965. case 162:
  966. # line 378 "expanded.g"
  967. {yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
  968. case 163:
  969. # line 380 "expanded.g"
  970. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  971. case 164:
  972. # line 381 "expanded.g"
  973. {yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
  974. case 165:
  975. # line 383 "expanded.g"
  976. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  977. case 166:
  978. # line 384 "expanded.g"
  979. {yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
  980. case 167:
  981. # line 386 "expanded.g"
  982. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  983. case 168:
  984. # line 388 "expanded.g"
  985. {yyval = tree4(N_Ret,yypvt[-0],yypvt[-0],tree1(N_Empty) ) ;} break;
  986. case 169:
  987. # line 389 "expanded.g"
  988. {yyval = tree4(N_Ret,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
  989. case 170:
  990. # line 390 "expanded.g"
  991. {yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
  992. case 171:
  993. # line 391 "expanded.g"
  994. {yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
  995. case 172:
  996. # line 393 "expanded.g"
  997. {yyval = tree5(N_If,yypvt[-3],yypvt[-2],yypvt[-0],tree1(N_Empty) ) ;} break;
  998. case 173:
  999. # line 394 "expanded.g"
  1000. {yyval = tree5(N_If,yypvt[-5],yypvt[-4],yypvt[-2],yypvt[-0]) ;} break;
  1001. case 174:
  1002. # line 396 "expanded.g"
  1003. {yyval = tree4(N_Case,yypvt[-5],yypvt[-4],yypvt[-1]) ;} break;
  1004. case 176:
  1005. # line 399 "expanded.g"
  1006. {yyval = tree4(N_Clist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1007. case 177:
  1008. # line 401 "expanded.g"
  1009. {yyval = tree4(N_Ccls,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1010. case 178:
  1011. # line 402 "expanded.g"
  1012. {yyval = tree4(N_Ccls,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1013. case 180:
  1014. # line 405 "expanded.g"
  1015. {yyval = tree4(N_Elist,yypvt[-1],yypvt[-2],yypvt[-0]);} break;
  1016. case 181:
  1017. # line 407 "expanded.g"
  1018. {
  1019.         yyval = tree3(N_Create,yypvt[-0],yypvt[-0]) ;
  1020.         } break;
  1021. case 182:
  1022. # line 410 "expanded.g"
  1023. {
  1024.         yyval = tree4(N_Elist,yypvt[-1],yypvt[-2],tree3(N_Create,yypvt[-1],yypvt[-0]));
  1025.         } break;
  1026. case 183:
  1027. # line 414 "expanded.g"
  1028. {Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_IntLit,0);} break;
  1029. case 184:
  1030. # line 415 "expanded.g"
  1031. {Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_RealLit,0);} break;
  1032. case 185:
  1033. # line 416 "expanded.g"
  1034. {Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_StrLit,(int)Val1(yypvt[-0]));} break;
  1035. case 186:
  1036. # line 417 "expanded.g"
  1037. {Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_CsetLit,(int)Val1(yypvt[-0]));} break;
  1038. case 187:
  1039. # line 419 "expanded.g"
  1040. {yyval = tree6(N_Sect,yypvt[-2],yypvt[-2],yypvt[-5],yypvt[-3],yypvt[-1]) ;} break;
  1041. case 188:
  1042. # line 421 "expanded.g"
  1043. {yyval = yypvt[-0];} break;
  1044. case 189:
  1045. # line 422 "expanded.g"
  1046. {yyval = yypvt[-0];} break;
  1047. case 190:
  1048. # line 423 "expanded.g"
  1049. {yyval = yypvt[-0];} break;
  1050. case 192:
  1051. # line 426 "expanded.g"
  1052. {yyval = tree4(N_Slist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
  1053.         }
  1054.         goto yystack;  /* stack new state and value */
  1055.  
  1056.     }
  1057.